Graphical user interface (GUI) programs such as the WINDOWS.TM. program, the IBM.TM. OS/2.TM. program, or the APPLE.TM. System 7.1 program are commonly used to make micro-computers more user friendly. The primary reason GUI programs make micro-computers more user friendly is they allow users to manipulate software-generated icons such as a screen menu to achieve a task. The IEEE defines an icon as "a symbol that is a pictorial indication of a command or object and is located on a graphics tablet or an on-screen menu." To clearly convey to users their intended functions, software icons are represented graphically by universally recognized symbols. For example, the icon of a "trash-can" unmistakably communicates to users that the icon is associated with the removal or deletion of files.
A cursor is a "moveable" marker that indicates a position (e.g., the mouse's position) on a display screen. The difference between a cursor and other icons appears to be their functions. While a cursor, which is normally associated with a computer mouse, is used in pointing and indicating a screen position, an icon is more "static" in nature and is a pictorial representation of a command or object. To be further effective in communicating to users the mouse's current position, cursors can change their shapes when they move between different areas of the display screen (i.e., from a background area to an area where an application-software is being displayed). Likewise, icons can also change their shapes to better communicate to users the state of their intended functions. Consider the trash-can icon example discussed earlier, when the trash-can contains items to be discarded, it has an inflated shape as compared to the straight shape when it is empty. Thus, by using cursors together with icons, users no longer have to perform computer related tasks by codes.
In the prior art, icons and cursors have been exclusively software based. That is these icons and cursors were generated by GUI programs such as WINDOWS.TM., IBM.TM. OS/2.TM., or APPLE.TM. System 7.1. In addition to requiring a GUI program to generate, software icons suffer from performance delays because additional software layers require additional clock cycles to read icon data from memory and write/rewrite the data on the screen every time an icon is manipulated or executed. On the other hand, hardware icons are generated almost exclusively by computer hardware components dedicated to the task with little or no software involved. Hardware icons provide a solution to these challenges because they do not require the use of GUI programs. Hence, they do not suffer from delays.
Currently, however, the use of hardware icons has been rather limited. This is because of the display priority scheme associated with the prior art. Particularly, a hardware cursor can not easily be used to select or manipulate hardware icons. With respect to CPU access, in the prior art, hardware icons have top priority, hardware cursors have the next highest priority, and software-based graphics have the lowest priority. This order of priority is shown in FIG. 3A. In other words, hardware icons have the highest priority and would override both a hardware cursor and a software cursor when it comes to graphics display. Because of this priority scheme, when a hardware cursor is pointed at a hardware icon, the cursor goes underneath and is hidden by the icon. This scenario is illustrated in FIG. 3B. FIG. 3B shows display screen 300 which displays hardware cursor 304, hardware icon 302, and software-based graphic background 301 relative to each other. Because of the priority order scheme, hardware cursor 304 is hidden by hardware icon 302 when the two overlap. FIG. 3B also shows how hardware cursor 303 and background 301 are displayed relative to each other (i.e., the overlapped portion of background 301 is hidden under hardware cursor 303).
As such, when multiple hardware icons are simultaneously displayed and are positioned next to each other, it becomes a difficult task to visualize and consequently to maneuver the cursor to the desirable icon for selecting or manipulating that icon. The ability to visualize the hardware cursor while manipulating hardware icons is greatly reduced when there are multiple hardware icons displayed in close proximity of each other on the display screen. Similarly, because of the lower priority of graphics display relative to hardware icons, software cursors also experience the same problem as hardware cursors under the prior art scheme. As a result, hardware icons have been used to only generate images for graphics display purposes. In other words, application of hardware icons has not been extended to pictorial representation of computer command and control. Such application of hardware icons is desirable because it represents a flexible and independent way for users to communicate with the computer.
Another challenge associated with using computer icons to graphically represent computer command and control is overlap detection. In communicating to the computer that a cursor is attempting to select or manipulate a particular icon, a determination needs to be made that the cursor is pointed at the icon on the monitor screen. This is done by comparing the current position of the cursor with that of the icon. More specifically, the boundaries of the cursor and the icon at that particular time are compared. If the boundaries of the cursor overlap that of the icon, a determination is made that the cursor is pointed at the icon. If an overlap is detected, the cursor can be used to either select or manipulate the icon. In the prior art, overlap detection has been made with software mainly because hardware icons have not been used to graphically represent computer command and control. It is desirable to perform the icon-cursor overlap comparison and determination with hardware rather with software because added layers of software normally mean performance delays and inefficiency (optimization).
Thus, what is needed is a method and apparatus for generating hardware icons to graphically represent a computer command and control. In particular, a method and apparatus for using a hardware cursor to select and manipulate hardware icons, which graphically represent computer commands and controls, so as to provide a flexible and independent way to communicate with the computer. What is further needed is a method and apparatus that determines through hardware, whether a hardware cursor is within the range of any hardware icon and if so, automatically triggers the computer command associated with that hardware icon.